#include "ColonizePlanet.hh"

using namespace Geom;
using namespace World;

Fleet::ColonizePlanet::ColonizePlanet(spPlanet target):
    target(target) {}

bool Fleet::ColonizePlanet::execute(spFleet fleet) {
    spPlanet _target = target.toStrongRef();

    // A bolygó megszűnt
    if (!_target)
        return true;

    Vector< f8 > dest = _target->get_star()->position;
    fleet->move_towards(dest);

    // Még túl messze vagyunk
    if ((fleet->position - dest).get_length() >= 0.05)
        return false;

    // Van konolizáló hajó és a bolygó nem foglalt
    if (fleet->colonyship && _target->build_colony(fleet->owner.toStrongRef()))
        --fleet->colonyship;

    return true;
}
